travelmate: update 2.2.1-4
authorDirk Brenken <[email protected]>
Thu, 6 Nov 2025 22:43:17 +0000 (23:43 +0100)
committerDirk Brenken <[email protected]>
Thu, 6 Nov 2025 22:43:38 +0000 (23:43 +0100)
- fix a possible race condition in the scan function
- limit the max. signal strength to 100
- cosmetics

Signed-off-by: Dirk Brenken <[email protected]>
net/travelmate/Makefile
net/travelmate/files/travelmate.init
net/travelmate/files/travelmate.sh

index 3aea45ac0a17b660d922c2b0d9c08b1242e0f096..0474bc874a89e9330d00cca5f502b4d24c3d0ec7 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=travelmate
 PKG_VERSION:=2.2.1
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_MAINTAINER:=Dirk Brenken <[email protected]>
 
index 2348ddd92718fea1e6cb0e45881fd94e44a044e8..f356566aac481db5e3c163525c8c9fe4856b7402 100755 (executable)
@@ -76,9 +76,8 @@ status_service() {
 }
 
 scan() {
-       local scan_dev scan_mode radio_num radio_phy radio="${1}"
+       local result scan_dev scan_mode radio_num radio_phy radio="${1}"
 
-       : > "${trm_scanfile}"
        scan_dev="$(ubus -S call network.wireless status 2>/dev/null | jsonfilter -ql1 -e "@.${radio}.interfaces[0].ifname")"
        if [ -z "${scan_dev}" ]; then
                radio_num="${radio//[a-z]/}"
@@ -95,16 +94,19 @@ scan() {
        if [ -n "${scan_dev}" ]; then
                scan_mode="$(uci_get travelmate global trm_scanmode "active")"
                [ "${scan_mode}" != "passive" ] && scan_mode=""
-               printf "%b\n" "$(iw "${scan_dev}" scan ${scan_mode} 2>/dev/null |
+               result="$(iw dev "${scan_dev}" scan ${scan_mode} 2>/dev/null |
                        awk '/^BSS /{if(bssid!=""){if(ssid=="")ssid="unknown";printf "%3s %3s %17s %s %s %10s %30s %s\n",signal,channel,bssid,rsn,wpa,cipher,auth,ssid};signal="";channel="";rsn="-";wpa="-";cipher="-";auth="-";bssid=toupper(substr($2,1,17))}
-                       /signal:/{signal=2*($2 + 100)}
+                       /signal:/{signal=(2*($2+100)>100 ? 100 : 2*($2+100))}
                        /SSID:/{$1="";sub(/^ /,"",$0);ssid=$0}
                        /freq:/{channel=int($2);if(channel>=2400&&channel<=2500)channel=int((channel-2407)/5);else if(channel>=4900&&channel<=5900)channel=int((channel-5000)/5);else if(channel>=5925&&channel<=7125)channel=int(((channel-5950)/5)+1)}
                        /WPA:/{wpa="+"}
                        /RSN:/{rsn="+"}
                        /Group cipher:/{cipher=$4}
                        /Authentication suites:/{auth="";for(i=4;i<=NF;i++){auth=auth (i==4?"":",")$i}}
-                       END{if(bssid!=""){if(ssid=="")ssid="unknown";printf "%3s %3s %17s %s %s %10s %30s %s\n",signal,channel,bssid,rsn,wpa,cipher,auth,ssid}}' | sort -rn)" > "${trm_scanfile}"
+                       END{if(bssid!=""){if(ssid=="")ssid="unknown";printf "%3s %3s %17s %s %s %10s %30s %s\n",signal,channel,bssid,rsn,wpa,cipher,auth,ssid}}' | sort -rn)"
+               printf "%b\n" "${result}" > "${trm_scanfile}"
+       else
+               : > "${trm_scanfile}"
        fi
        if [ -n "${radio_phy}" ] && [ -n "${radio_num}" ]; then
                ip link set "trmscan${radio_num}" down >/dev/null 2>&1
index 8c52c1354249405e4956a120bc7c62434bca4d93..0b6b614157b04f49e7cb375b4774675261b0e127 100755 (executable)
@@ -989,9 +989,9 @@ f_main() {
                                        fi
                                        if [ -n "${scan_dev}" ]; then
                                                [ "${trm_scanmode}" != "passive" ] && scan_mode=""
-                                               scan_list="$(printf "%b" "$("${trm_iwcmd}" "${scan_dev}" scan ${scan_mode} 2>/dev/null |
+                                               scan_list="$(printf "%b" "$("${trm_iwcmd}" dev "${scan_dev}" scan ${scan_mode} 2>/dev/null |
                                                        "${trm_awkcmd}" '/^BSS /{if(bssid!=""){if(ssid=="")ssid="unknown";printf "%s %s %s %s %s\n",signal,rsn,wpa,bssid,ssid};bssid=toupper(substr($2,1,17));ssid="";signal="";rsn="-";wpa="-"}
-                                                       /signal:/{signal=2*($2 + 100)}
+                                                       /signal:/{signal=(2*($2+100)>100 ? 100 : 2*($2+100))}
                                                        /SSID:/{$1="";sub(/^ /,"",$0);ssid="\""$0"\""}
                                                        /WPA:/{wpa="+"}
                                                        /RSN:/{rsn="+"}